585B - Phillip and Trains - CodeForces Solution


dfs and similar graphs shortest paths *1700

Please click on ads to support us..

C++ Code:

#include <cstdio>
using namespace std;

char field[3][105];
int n;

bool dfs(int row, int col, bool climbed) {
    if (row < 0 || row > 2) {
        return false;
    }
    if (col >= n) {
        return true;
    }
    if (climbed) {
        return field[row][col] == '.' && field[row][col + 1] == '.' && field[row][col + 2] == '.' && dfs(row, col + 2, false);
    }
    field[row][col] = 'A';
    return field[row][col + 1] == '.' && (dfs(row - 1, col + 1, true) || dfs(row, col + 1, true) || dfs(row + 1, col + 1, true));
}

int main() {
    int t;
    scanf("%d", &t);

    while (t--) {
        int startingRow;
        scanf("%d %d", &n, &startingRow);

        for (int i = 0; i < 3; ++i) {
            scanf("%s", field[i]);
            field[i][n] = field[i][n + 1] = '.';
            field[i][n + 2] = 0;
            if (field[i][0] == 's') {
                startingRow = i;
            }
        }
        
        puts(dfs(startingRow, 0, false) ? "YES" : "NO");
    }
    return 0;
}/*1698306527.8952184*/


Comments

Submit
0 Comments
More Questions

1294C - Product of Three Numbers
749A - Bachgold Problem
1486B - Eastern Exhibition
1363A - Odd Selection
131B - Opposites Attract
490C - Hacking Cypher
158B - Taxi
41C - Email address
1373D - Maximum Sum on Even Positions
1574C - Slay the Dragon
621A - Wet Shark and Odd and Even
1395A - Boboniu Likes to Color Balls
1637C - Andrew and Stones
1334B - Middle Class
260C - Balls and Boxes
1554A - Cherry
11B - Jumping Jack
716A - Crazy Computer
644A - Parliament of Berland
1657C - Bracket Sequence Deletion
1657B - XY Sequence
1009A - Game Shopping
1657A - Integer Moves
230B - T-primes
630A - Again Twenty Five
1234D - Distinct Characters Queries
1183A - Nearest Interesting Number
1009E - Intercity Travelling
1637B - MEX and Array
224A - Parallelepiped